package futbol.tacticas.concursantes2007.TacticaTururu;

import java.awt.Point;

import futbol.tacticas.Comando;
import futbol.tacticas.ComandoIrA;
import futbol.tacticas.SituacionJugadores;

public class Delantero extends Jugador {

	public Delantero (int dorsal) {
		super (dorsal);
	}

	public Comando command(SituacionJugadores sj) {

		Point bola = sj.getBola();

		if (sj.getMasCercanoDeBola() == dorsal || (calcularDistancia(bola, sj.getMisJugadores()[dorsal]) < distanciaIrBola)) {

            return new ComandoIrA(
                    dorsal,
                    bola.getX(),
                    bola.getY());
        }

		else {

			Point yo = new Point (getPosicionX(), getPosicionY());

			Point[] enemigo = sj.getContrario();
			int[] distancia = new int [11];

			for (int i = 0; i < enemigo.length; i++) {
				distancia[i] = Jugador.calcularDistancia(yo, enemigo[i]);
			}

			int maximaDistancia = 10000;
			int enemigoMasCerca = 0;
			for (int i = 0; i < enemigo.length; i++) {
				if (distancia[i] < maximaDistancia) {
					enemigoMasCerca = i;
					maximaDistancia = distancia [i];
				}
			}

			if (maximaDistancia > 50)

				return new ComandoIrA(
	                    dorsal,
	                    originalX,
	                    originalY);
			else {

				int y = 0;

				if ((enemigo[enemigoMasCerca].getY() > 0) || (enemigo[enemigoMasCerca].getY() < 105)) y = coordenadaInterceptarY(bola, enemigo[enemigoMasCerca], -20) + 10;
				if ((enemigo[enemigoMasCerca].getY() < 0) || (enemigo[enemigoMasCerca].getY() > 105)) y = coordenadaInterceptarY(bola, enemigo[enemigoMasCerca], -20) - 10;

		        return new ComandoIrA(
			            dorsal,
			            enemigo[enemigoMasCerca].getX() - 10,
			            y);
			}
        }
	} // public Comando command(SituacionJugadores sj)

} // public class Delantera extends Jugador
